package com.tripcube.file.service;

import com.tripcube.system.api.domain.SysFile;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 文件信息Service接口
 */
public interface ISysFileInfoService {
    /**
     * 查询文件信息列表
     * 
     * @param sysFile 查询条件
     * @return 文件信息列表
     */
     List<SysFile> selectSysFileList(SysFile sysFile,Integer pageNum, Integer pageSize);
    
    /**
     * 根据文件ID查询文件信息
     * 
     * @param fileId 文件ID
     * @return 文件信息
     */
     SysFile selectSysFileById(Long fileId);
    
    /**
     * 根据文件名查询文件信息
     * 
     * @param fileName 文件名
     * @return 文件信息
     */
     SysFile selectSysFileByFileName(String fileName);
    
    /**
     * 新增文件信息
     * 
     * @param sysFile 文件信息
     * @return 结果
     */
     int insertSysFile(SysFile sysFile);
    
    /**
     * 更新文件信息
     * 
     * @param sysFile 文件信息
     * @return 结果
     */
     int updateSysFile(SysFile sysFile);
    
    /**
     * 根据文件ID删除文件信息
     * 
     * @param fileId 文件ID
     * @return 结果
     */
     int deleteSysFileById(Long fileId);
    
    /**
     * 上传文件并保存信息
     * 
     * @param file 上传的文件
     * @return 文件信息
     */
     SysFile uploadFileAndSave(MultipartFile file) throws Exception;

     /**
     * 上传多个文件并保存信息
     *
     * @param files 上传的文件
     * @return 文件信息
     */
    List<SysFile> uploadFilesAndSave(MultipartFile[] files) throws Exception;

    /**
     * 删除文件并更新信息
     * 
     * @param fileId 文件ID
     * @return 结果
     */
     boolean deleteFileAndRecord(Long fileId) throws Exception;
}
